// 回溯思想解法一般可以归纳为以下思路：
/**
int start = x;   // 选择一个合适的起点
while (问题未被解决 / 所获临时结果未达到有效)
  for (从start端可以进行的所有路径) {
    判断进行这条路径是否合法;
    合法就做相应处理；
    递归调用处理剩下的部分；
    恢复到处理前的状态；
  }
*/